package com.example.config;

import io.minio.MinioClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 作者:xuSen
 * 日期2025/4/25 12:58
 */
@Slf4j
@Configuration
public class MinioConfiguration {
    // 从应用配置中获取 Minio 服务的地址
    @Value("${spring.minio.endpoint}")
    private String endpoint;
    // 从应用配置中获取 Minio 服务的用户名
    @Value("${spring.minio.username}")
    private String username;
    // 从应用配置中获取 Minio 服务的密码
    @Value("${spring.minio.password}")
    private String password;

    /**
     * 创建并配置 Minio 客户端
     *
     * @return MinioClient 实例，用于与 Minio 服务进行交互
     */
    @Bean
    public MinioClient minioClient() {
        // 日志记录：初始化 Minio 客户端
        log.info("初始化minio");
        // 构建 Minio 客户端实例
        return MinioClient.builder()
                .endpoint(endpoint)  // 设置 Minio 服务的地址
                .credentials(username, password)   // 设置访问 Minio 服务的凭证
                .build();
    }
}

